/*
 *  png文件解析,依赖 libpng
 */
#ifndef _LIB_PNG_ADAPT_H_
#define _LIB_PNG_ADAPT_H_

#include <stdint.h>

typedef enum {
    LPT_RGB = 0,
    LPT_BGR,
    LPT_RGBA,
    LPT_BGRA,
    LPT_ARGB,
    LPT_ABGR,
} LibPngType;

#ifdef __cplusplus
extern "C"
{
#endif

/*
 *  png 图片数据获取
 *  参数:
 *      file: 路径
 *      width: 返回图片宽(像素), 不接收置NULL
 *      height: 返回图片高(像素), 不接收置NULL
 *      pixelBytes: 返回图片每像素的字节数, 不接收置NULL
 *      pt: 设置输出格式
 *  返回: argb图片数据指针 !! 用完记得free()释放 !!
 */
uint8_t *LibPngGet(const char *file, uint32_t *width, uint32_t *height, uint32_t *pixelBytes, LibPngType pt);

/*
 *  生成 png 图片
 *  参数:
 *      file: 路径
 *      argb: 原始数据,根据pixelBytes值决定是否有a值
 *      width: 宽(像素)
 *      height: 高(像素)
 *      pt: argb数据格式
 *  返回: 0成功 -1失败
 */
int32_t LibPngCreate(const char *file, uint8_t *argb, uint32_t width, uint32_t height, LibPngType pt);

#ifdef __cplusplus
}
#endif

#endif // _LIB_PNG_ADAPT_H_
